// 算法题目必须注意循环的边界条件、

function tongpaixu(list) {
    // 申请大小11的数组
    const book = Array(11).fill(0)

    for (let i = 0; i < list.length; i++) {
        book[list[i]]++
    }
    const arr = []
    for (let j = 10; j >= 0; j--) {
        for (let k = 0; k < book[j]; k++) {
            // 通过循环取出每个值
            // 多个值循环取出
            arr.push(j)
        }
    }
    return arr
}

console.log('tongpaixu', tongpaixu([5,3,5,2,8]));
// 时间复杂度 O(M+N)

// 1.2 冒泡排序 每次比较两个相邻的元素 如果他们的顺序错误就把他们交换过来
function maopao(list) {
    console.log("🚀 ~ maopao ~ list:", list)
    const lens = list.length
    for (let i = 0; i < lens-1; i++) {
        for (let j = 0; j < lens-i; j++) {
            if(list[j] < list[j+1]) {
                let temp = list[j]
                list[j] = list[j+1]
                list[j+1] = temp
            }
        }
    }
    return list
}

console.log(maopao([12,35,99,18,76]));